专利摘要:
implementations of the present invention include receiving, via a contract update management system, an update request indicating a change to a smart contract, the change being a proposal to update the smart contract, determining, performing smart contract update management system updates, if conditions are met to update the smart contract to incorporate the change, smart contract updates defining the conditions, and by determining, by the contract update management system, that conditions are met, update through the contract update management system, the smart contract, and record the change in one or more blocks in a trust protocol from a trust protocol network.
公开号:BR112019008008A2
申请号:R112019008008-2
申请日:2018-11-30
公开日:2019-11-12
发明作者:Shao Kailai;Lu Xuming
申请人:Alibaba Group Holding Ltd;
IPC主号:
专利说明:

“METHOD IMPLEMENTED BY COMPUTER, LEGIBLE MEANS BY COMPUTER AND SYSTEM”
Field of the Invention [001] The present invention relates to methods implemented by computer to update smart contracts.
Background of the Invention [002] Distributed accounting systems (DLSs), which can also be called consensus networks and / or trust protocol networks (blockchain), allow participating entities to store data in a secure and immutable way. DLSs are commonly referred to as trust protocol networks without reference to any particular use case (for example, cryptocurrencies). Examples of types of trust networks can include public trust networks, private trust networks and consortium trust networks. A public trust protocol network is open for all entities to use and participate in the consensus process. A private trusted protocol network is provided for a specific entity, which centrally controls read and write permissions. A consortium trust protocol network is provided for a select group of entities, which control the consensus process and include an access control layer.
[003] Smart contracts can be executed between entities and reside in a trust protocol network. In some cases, smart contracts need to be updated (for example, to reflect changing circumstances between entities). Conventional systems use a centralized solution to manage changes to smart contracts, which can include difficult-to-manage processes and other disadvantages. For example, when a smart contract needs to be updated (or
Petition 870190056795, of 06/19/2019, p. 9/44
2/23 improved), an authorized entity (for example, a manager, contract creator or public agency) may be responsible for updating a smart contract and may communicate with entities related to the update. After the communication reaches consensus, the authorized entity can carry out the update operation. This process can be difficult to control, and may require entities that are parties to the smart contract to trust the authorizing entity.
Description of the Invention [004] The embodiments of the present invention include computer-implemented methods for updating smart contracts. More particularly, the achievements of the present invention are directed to updating a smart contract by performing a smart contract update within a contract update management system.
[005] In some realizations, the actions include receiving, through a contract update management system, an update request indicating a change in a smart contract, the change being a proposal to update the smart contract, determining, for example, performing smart contract updates in the contract update management system, if the conditions are met to update the smart contract to incorporate the change, the smart contract updates defining the conditions and when determining, by the contract update management system , that the conditions are met, update through the contract update management system, the smart contract, and record the change in one or more blocks in a trust protocol of a trust protocol network. Other achievements include corresponding systems, devices and computer programs, configured to perform the actions of the methods, encoded in
Petition 870190056795, of 06/19/2019, p. 10/44
3/23 computer storage.
[006] These and other achievements may optionally include one or more of the following characteristics: the update request includes an identifier assigned to the smart contract within the trust protocol network; the update request includes an identifier assigned to smart contract updates within the trust protocol network; the smart contract includes: a controlling contract defined by a shipper upon receipt of an order by a contract originator that originates the smart contract, a service contract that includes the logic of the smart contract, and a data contract that includes the terms of the smart contract; determining whether conditions are met includes conducting a voting process, including: sending a request to one or more nodes in the trust protocol network for a vote on the change, collecting votes from one or more nodes, and determining that the conditions are met when the votes cast indicate an approval of the change by one or more nodes; carrying out the voting process includes weighting votes by weights associated with the respective nodes, and where approval is based on a function of the collected votes and their associated weights; conducting the voting process includes applying a veto received from a node with veto privilege, the voting process ending when a veto is received due to the change during the voting process, the veto causing the change to be rejected; conducting the voting process includes the use of voting rules specifying when the voting process should result in the approval of the change or rejection of the change; conducting the voting process includes the use of a start time for voting and an end time for voting that defines a voting period in which the voting process takes place; and perform when the voting process ends and conditions are met when a limited number of voters have approved the change or when a combination
Petition 870190056795, of 06/19/2019, p. 11/44
4/23 of one or more specific voters approved the amendment.
[007] The present invention also provides one or more computer-readable storage media coupled to one or more processors and having instructions stored on it that, when executed by one or more processors, cause the one or more processors to perform operations according to realizations of the methods provided here.
[008] The present invention further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to one or more processors with instructions stored on it that, when executed by one or more processors, cause one or more processors to perform operations according to achievements of the methods provided here.
[009] It is understood that the methods according to the present invention can include any combination of the aspects and characteristics described herein. That is, the methods according to the present invention are not limited to the combinations of aspects and characteristics specifically described herein, but also include any combination of the aspects and characteristics provided.
[0010] Details of one or more embodiments of the present invention are presented in the accompanying drawings and in the description below. Other features and advantages of the present invention will be apparent from the description and drawings, and from the claims.
Brief Description of the Drawings [0011] Figure 1 illustrates an example of an environment that can be used to perform embodiments of the present invention.
[0012] Figure 2 illustrates an example of conceptual architecture according to embodiments of the present invention.
Petition 870190056795, of 06/19/2019, p. 12/44
5/23 [0013] Figure 3 represents an example of a system for updating smart contracts according to realizations of the present invention.
[0014] Figure 4 illustrates a process that can be performed according to the embodiments of the present invention.
[0015] Similar reference symbols in the various drawings indicate similar elements.
Description of Embodiments of the Invention [0016] Embodiments of the present invention include computer-implemented methods for updating smart contracts. More particularly, the embodiments of the present invention are designed to perform smart contract updates within a contract update management system to manage smart contract updates within a trusted protocol network. In some embodiments, the actions include receiving, through a contract update management system, an update request indicating a change in a smart contract, the change being an update proposal for the smart contract, determining, by performing smart contract updates within the contract update management system if conditions are met, to update the smart contract to incorporate the change, smart contract updates defining the conditions and when determining, by the contract update management system, that the conditions are met, updating the smart contract by the contract update management system and recording the change to one or more blocks in a trust protocol of a trust protocol network.
[0017] To provide an additional context for realizations of the present invention, and as introduced above, distributed accounting systems (DLSs), which can also be referred to as consensus networks
Petition 870190056795, of 06/19/2019, p. 13/44
6/23 (for example, made up of peer-to-peer nodes), and trust protocol networks, allow participating entities to conduct transactions in a secure and immutable way and to store data. Although the term trust protocol is generally associated with the Bitcoin cryptocurrency network, the trust protocol is used here to refer generally to a DLS without reference to any particular use case. As introduced above, a trust protocol network can be provided as a public trust protocol network, a private trust protocol network, or a consortium trust network.
[0018] In a public trust protocol network, the consensus process is controlled by nodes in the consensus network. For example, hundreds, thousands, even millions of entities can cooperate in a public trust protocol network, each of which operates at least one node in the public trust protocol network. Thus, the public trust protocol network can be considered a public network in relation to the participating entities. In some examples, most entities (nodes) must sign each block in order for the block to be valid, and added to the trust protocol (distributed accounting) of the trust protocol network. An example of a public trust protocol network includes the Bitcoin network, which is a peer-to-peer payment network. The Bitcoin network uses distributed accounting, known as a trust protocol. As noted above, the term trust protocol, however, is used to generally refer to distributed accounts with no particular reference to the Bitcoin network.
[0019] In general, a public trust protocol network supports public transactions. A public transaction is shared with all nodes within the public trust protocol network and is stored in a global trust protocol. A global trust protocol is a
Petition 870190056795, of 06/19/2019, p. 14/44
7/23 trust protocol that is replicated on all nodes. That is, all nodes are in a perfect state of consensus regarding the global trust protocol. To reach consensus (for example, agreeing to add a block to a trust protocol), a consensus protocol is implemented within the public trust protocol network. An example of a consensus protocol includes, without limitation, proof of work (POW) implemented in the Bitcoin network.
[0020] In general, a private trust protocol network is provided for a particular entity, which centrally controls read and write permissions. The entity controls which nodes are able to participate in the trust protocol network. Consequently, private trust protocol networks are generally referred to as allowed networks that place restrictions on who is allowed to participate in the network, and on their level of participation (for example, only in certain transactions). Various types of access control mechanisms can be used (for example, existing participants vote to add new entities, a regulatory authority can control admission).
[0021] In general, a consortium trust protocol network is private between participating entities. In a consortium trust protocol network, the consensus process is controlled by an authorized set of nodes, one or more nodes being operated by a respective entity (for example, a company). For example, a consortium of ten (10) entities (for example, companies) may operate a consortium trust protocol network, each operating at least one node in the consortium trust protocol network. In this sense, the consortium trust protocol network can be considered a private network in relation to the participating entities. In some examples, each entity (node) must sign all the blocks for the block to be valid and added to the
Petition 870190056795, of 06/19/2019, p. 15/44
8/23 trust protocol. In some examples, at least a subset of entities (nodes) (for example, at least 7 entities) must sign all blocks for the block to be valid and added to the trust protocol.
[0022] The achievements of the present invention are described here in more detail with reference to a consortium trust protocol network, which is public among the participating entities (for example, members of a consortium). It is contemplated, however, that the embodiments of the present invention can be performed on any appropriate type of trusted protocol network. Although the techniques described in the present invention are indicated as being relevant to consortium trust protocol networks, the techniques can also be used, with or without changes, in other types of trust protocol networks, including public trust protocol networks and private trust protocol networks.
[0023] The realizations of the present invention are described in more detail here in view of the above context. More particularly, and as shown above, the achievements of the present invention are designed to perform smart contract updates within a contract update management system of a trusted protocol network to manage updates to smart contracts.
[0024] Smart contracts can be described as digital representations of legal contracts in the real world, with contractual terms that affect multiple parties. A smart contract is implemented, stored, updated (as needed) and executed within, in the context example, a consortium trust protocol network. Contract parties associated with the smart contract (for example, buyers and sellers) are represented as nodes in the consortium trust protocol network. In some instances, contracted parties may include entities (for example, commercial companies) that are associated with the
Petition 870190056795, of 06/19/2019, p. 16/44
9/23 smart contract (for example, as parts of the smart contract).
[0025] In some examples, a smart contract can store data, which can be used to record information, facts, associations, balance sheets and any other information necessary to implement the logic for the performance of the contract. Smart contracts can be described as a computer executable program that consists of functions, in which an example of the smart contract can be created and functions invoked to carry out the logic contained therein. In some examples, a smart contract can include several components, one or more of which can also be described as a contract. In some examples, one or more of the smart contract components can be updated as part of a smart contract update in general.
[0026] In some embodiments, examples of components of a smart contract may include, without limitation, a controller contract, a service contract and a data contract. The controller contract can be defined by a shipper after receiving a request for an originator contract, which originates the smart contract. The origin of the smart contract may include providing smart contracts to us in the consortium trust protocol network (for example, to entities, which will be parties to the smart contract). The origin of the smart contract can also identify a time when the smart contract was created, and an identification of the originator of the smart contract. In some examples, the service contract includes the logic of the smart contract. The logic can define how the contract is executed, including a definition of an order of events and relationships with entities associated with the smart contract. The data contract includes terms of the smart contract, including, without limitation, products, and / or services that are the subject of the smart contract, and payment information for the smart contract
Petition 870190056795, of 06/19/2019, p. 17/44
10/23 for the supply of products, and / or services. The data that is stored in the data contract can be used to record information, facts, and associations, including, without limitation, balance sheets, payments, receipts, deliveries, deadlines and any other information necessary to implement the smart contract logic.
[0027] In technical terms, smart contracts can be implemented based on objects and object-oriented classes. For example, smart contract terms and components can be represented as objects handled by applications that implement smart contracts. A smart contract (or an object in the smart contract) can call another smart contract (or an object in the same smart contract), just like the other object-oriented objects. Calls made by an object can be, for example, a call to create, update, delete, propagate or communicate with objects of another class. Inter-object calls can be implemented as tools, methods, application programming interfaces (APIs) or other calling mechanisms. For example, a first object can call a function to create a second object.
[0028] Figure 1 represents an example of an environment (100) that can be used to carry out realizations of the present invention. In some examples, the sample environment (100) allows entities to participate in a consortium trust protocol network (102). The example environment (100) includes computing systems (106, 108) and a network (110). In some examples, the network (110) includes a local area network (LAN), a wide area network (WAN), the Internet or a combination of them, and connects web sites, user devices (for example, computing) and back-end system. In some examples, the network (110) can be accessed via a wired and / or wireless communication link.
Petition 870190056795, of 06/19/2019, p. 18/44
11/23 [0029] In the example described, the computing systems (106, 108) can include any appropriate computing system that allows participation as a node in the consortium trust protocol network (102). Examples of computing devices (120) include, without limitation, a server, a desktop computer, a laptop computer, a tablet computing device and a smartphone. In some instances, computer systems (106, 108) host one or more services implemented per computer to interact with the consortium trust protocol network (102). For example, the computing system (106) can host computer-implemented services from a first entity (for example, user A), such as a transaction management system that the first entity uses to manage its transactions with one or more entities ( for example, other users). The computing system (108) can host computer-implemented services from a second entity (for example, user B), such as a transaction management system that the second entity uses to manage its transactions with one or more other entities (for example , other users). In the example in Figure 1, the consortium trust protocol network (102) is represented as a peer-to-peer network of nodes, and the computing systems (106, 108) provide nodes of the first entity and the second entity respectively , who participate in the consortium trust protocol network (102).
[0030] Figure 2 illustrates an example of conceptual architecture (200) according to embodiments of the present invention. The conceptual architecture (200) includes an entity layer (202), a hosted services layer (204) and a trust protocol network layer (206). In the example shown, the entity layer (202) includes three entities, Entity_1 (E1), Entity_2 (E2) and Entity_3 (E3), each entity having a respective transaction management system (208).
Petition 870190056795, of 06/19/2019, p. 19/44
12/23 [0031] In the example described, the hosted services layer (204) includes interfaces (210) for each transaction management system (208). In some examples, a respective transaction management system (208) communicates with a respective interface (210) over a network (for example, the network (110) in Figure 1) using a protocol (for example, data transfer protocol) secure hypertext (HTTPS)). In some examples, each interface (210) provides a communication connection between a respective transaction management system (208), and the trust protocol network layer (206). More particularly, the interface (210) communicates with a trust protocol network (212) of the trust protocol layer (206). In some examples, communication between an interface (210) and the trust protocol network layer (206) is conducted using remote procedure calls (RPCs). In some examples, interfaces (210) "host" the trust protocol network nodes for the respective transaction management systems (208). For example, interfaces (210) provide the application programming interface (API) for accessing the trusted protocol network (212).
[0032] As described here, the trust protocol network (212) is provided as a peer-to-peer network including a plurality of nodes (214) that record information immutably in a trust protocol (216) (for example, example a consortium trust protocol). Although a single trust protocol (216) is schematically represented, several copies of the trust protocol (216) are provided, and are maintained through the trust protocol network (212). For example, each node (214) stores a copy of the trust protocol. In some embodiments, the trust protocol (216) stores information associated with transactions that are carried out between two or more entities that participate in the private trust protocol network.
Petition 870190056795, of 06/19/2019, p. 20/44
13/23 [0033] Figure 3 illustrates an example of a system (300) for updating smart contracts according to embodiments of the present invention. In the example described, the system (300) includes a contract update management system (302) that manages updates for smart contracts, including a smart contract (304). Although a single smart contract (304) is described, it is contemplated that the contract update management system (302) can be used to update any number of smart contracts (304) within a consortium trust protocol network, for example example. In addition, although single smart contract updates (303) are represented, it is envisaged that any number of smart contract updates (303) can be provided. In some examples, updates to the smart contract (303) are provided for a single smart contract (304) (for example, a one-to-one relationship). In some instances, multiple update smart contracts (303) are provided for a single smart contract (304) (for example, many-to-one relationship).
[0034] In accordance with the achievements of the present invention, the contract update management system (302) selectively performs an intelligent contract update (303) to update the smart contract (304). Although schematically represented within the contract update management system (302), smart contract updates (303) generally reside, and are performed within the consortium trust protocol network. In some examples, and as described in more detail here, smart contract updates (303) include logic to invoke an update on the smart contract (304), one or more conditions necessary for the update to run on the smart contract (304) and, assuming one or more conditions are met, perform the update on the smart contract (304).
Petition 870190056795, of 06/19/2019, p. 21/44
14/23 [0035] In more detail, the contract management system (302) can invoke an update process. For example, and as described in more detail here, an update request can be provided to the contract management system (302), which invokes the update process. In some examples, the update request identifies the smart contract (304) that must be updated, as well as an update that must be performed. In some examples, the smart contract (304) is identified based on a unique smart contract address (304) within the consortium trust protocol network (for example, 39a1509440f8c549dfd6e995def14b1ce3c 98e5d). For example, after, or with the creation of the smart contract (304), the smart contract (304) can be registered with the contract update management system (302). In some examples, smart contract registration (304) includes indexing the smart contract (304) based on its unique identifier and reference one or more updates to the smart contracts (303) that must be performed to update the smart contract (304 ). In some examples, each or more smart contract updates (303) are referenced based on a unique address from the respective smart contract updates (303) within the consortium trust protocol network (e.g. 23d61 f4a88f90be1290c0eeab344992e1 a2e8f6d).
[0036] In some embodiments, the update request may include an update type that must be performed in the smart contract (304). In some examples, smart contract updates (303) can be selected to perform the update process based on the type of update. For example, for a first update type (for example, modifying prices), a first smart contract update is selected and includes a first set of conditions and a second update type (for example, modifying parts of the smart contract), a
Petition 870190056795, of 06/19/2019, p. 22/44
15/23 second smart contract update is selected and includes a second set of conditions. In some instances, sets of conditions between smart contract updates may be more / less stringent. For example, the first set of conditions may be less stringent than the second set of smart contracts.
[0037] In some embodiments, smart contract updates (303) are selected regardless of the type of update (for example, single smart contract updates (303) are associated with the smart contract (304)). In some examples, a set of conditions implemented by smart contract updates is selected based on the type of update. For example, for the first update type, smart contract updates (304) implement the first set of conditions, and for the second update type, smart contract updates (304) implement the second set of conditions.
[0038] In some embodiments, smart contract updates (303) can manage a list of nodes (308) that are involved in meeting one or more conditions that must be met for smart contract updates (304). In some examples, a node (308) performs some task or has a task performed (for example, by a user on node (308)). For example, a node (308) may be required to provide information, approval, a signature (for example, digital signature) and / or a vote, depending on the logic and set of conditions required to implement the update.
[0039] A non-limitative example for approving an update is described in more detail here with reference to Figure 3. In the example in Figure 3, nodes (308) (described as users) vote on a proposal to update the smart contract ( 304). Examples of types of voting may include, without limitation, committee members and voting
Petition 870190056795, of 06/19/2019, p. 23/44
16/23 attribute change and contract escalation vote. Committee members and attribute change voting can be used to update the list of voting members, and the corresponding voting parameters. Contract escalation voting can be used to update the smart contract (304).
[0040] Each proposal to update the smart contract (304) that is processed by the contract update management system (302) can include content. Example content may include, without limitation, a smart contract address (304), an address for smart contract updates (303), a reason for updating (or improving) and / or a list of new committee members. The conditions of the proposal may include, for example, information that specifies whether full consent is required for the proposal to be accepted, whether a required weight ratio is established to accept the proposal, and whether vetoes are enabled (and as an option of veto should apply). The proposed voting deadline and an effective time slot proposal can identify a time from the generation of the proposal to the realization of the proposal (during a voting process). Examples of types of votes may include, without limitation, an attribute change vote, and a contract update vote.
[0041] A controller contract (306) can be defined by a dispatcher upon receipt of a request by a contract originator that originates the smart contract (304). For example, the smart contract (304) can originate from one or more of the nodes (308). In the example shown, the controller contract (306) includes a router (310) that forwards requests, including requests to update the smart contract (304). The smart contract (304) also includes a service contract (312), and a data contract (314). The service contract (312) can include the business logic of the smart contract (304). The data contract
Petition 870190056795, of 06/19/2019, p. 24/44
17/23 (314) may include terms of the smart contract (304), including products, and / or services covered by the smart contract (304) and payment information for the contract for receiving the products, and / or services.
[0042] In some examples, the router (310) is responsible for forwarding requests and other information to the correct address of the service contract, for example, the correct node (308). A modification of the contract address data on the router (310) can be performed by updating the smart contract (303). The decision to update the smart contract (304) can be made by members of the consortium, a contract management committee or a joint vote by a number of nodes (308).
[0043] In an example of a sequence of events, a node (308a) can propose a change to the smart contract (304). The proposed change can be in the form of a proposal (312) (for example, an update request), for example, which changes the terms of the smart contract (304) (for example, a delivery date, a price to be paid for a product or service). The contract update management system (302) can receive the proposal (312), and can send requests to users who have not proposed changes (308) (including users (308b, 308c, 308d, 308e)). Requests that are sent to users who have not proposed changes (308) can include the change being proposed for the smart contract (304), and a request (or invitation) to vote on the change. Nodes (308b, 308c, 308d, 308e) can provide their votes (318) to the contract update management system (302), which can then determine whether or not to approve the change. In some instances, a vote is automatically provided by a node (for example, voting by computer). In some instances, a vote is provided by a user through the node (for example, an authorized user sends a vote through the node).
[0044] Figure 4 shows a process (400) that can be
Petition 870190056795, of 06/19/2019, p. 25/44
18/23 performed in accordance with the embodiments of the present example invention. In some embodiments, the process example (400) can be run using one or more computer executable programs executed using one or more computing devices.
[0045] In (402), a change to a smart contract is received by a contract update management system. For example, a change to the smart contract (304) can be proposed by the user (308a). The change can be a proposed update, for example, to change the terms of the smart contract contract (304). The proposed contract term to be changed may include, for example, a change in a delivery date or a price to be paid for a product or service identified in the smart contract (304).
[0046] In (404), a determination is made as to whether the conditions are met to update the smart contract to incorporate the change. For example, the determination can be made by executing smart contract updates (303) within the contract update management system (302). Smart contract updates (303) can define the conditions for making the determination.
[0047] In some achievements, determining whether the conditions are met includes conducting a voting process, including the following. The proposed change is sent to the blocks in the trust protocol with a request to vote for or against the change. For example, the contract update management system (302) can send requests to the blocks that represent users (308b, 308b, 308d and 308e). The contract update management system (302) can then collect votes (318) from the blocks in the trust protocol. The contract update management system (302) can then determine that the conditions are met, for example, when the votes collected indicate an approval
Petition 870190056795, of 06/19/2019, p. 26/44
19/23 of the amendment by a consensus of the blocks in the block chain.
[0048] In some achievements, the voting process includes weighting votes by weights associated with specific voters, and consensus can be based on a function of the votes collected and their associated weights. For example, some of the users (308) may be contracted parties whose importance for the smart contract (304) varies according to their importance. During the voting process, the contract update management system (302) uses weights associated with different users (308) to make a decision whether a voter consensus has been reached.
[0049] In some cases, carrying out the voting process includes the application of a veto received from a voter with veto privilege. The voting process can end when a veto is received for the change during the voting process, with the veto causing the change to be rejected. For example, some of the users (308) may be contracted parties to the smart contract (304) who are a buyer or seller. These types of contract parties may have veto privileges on any proposed changes to the smart contract (304).
[0050] In some realizations, the conduct of the voting process includes the use of voting rules specifying when the voting process should result in the approval of the change or rejection of the change. As an example, a set of voting rules for a given smart contract can include rules that specify how the vote should be used to determine whether an approval is made. The rules may specify, for example, a minimum number of blocks in the trust protocol that are required for approval, or some other voting combination. Each smart contract can have a unique set of voting rules.
[0051] In some cases, carry out the voting process
Petition 870190056795, of 06/19/2019, p. 27/44
20/23 includes the use of a start time for voting and an end time for voting that defines a voting period in which the voting process takes place. For example, smart contract updates (303) can define a time period (for example, a number of hours or days) that can be mapped to a specific start and end time.
[0052] In some cases, the voting process ends and conditions are met when a limit number of voters approved the change or when a combination of one or more specific voters approved the change. For example, the contract update management system (302) can determine, using voting rules, that a consensus was reached when at least three of the users (308) voted to approve the proposed change.
[0053] In (406), when determining, by the contract update management system, that the conditions are met, the smart contract is updated by the contract update management system. The change is recorded in one or more blocks in a trust protocol. For example, the contract update management system (302) can propagate the change to blocks in the trust protocol (for example, users (308)).
[0054] Although an example of an update process is described here with reference to voting on a proposed update, it is contemplated that the achievements of the present invention can be accomplished using any appropriate conditions to allow or not an update. For example, in response to an update request, example conditions may include the requirement to approve the update from one or more specified users. If each one or more specified users gives approval, the update will be performed on the smart contract. If any one or more of the specified users does not give their
Petition 870190056795, of 06/19/2019, p. 28/44
21/23 approval, the update will not be performed on the smart contract. As another example, an example of the update conditions may include the requirement to disapprove an update from one or more specified users within a predefined period of time. If the disapproval is not received within the predefined time period, the update will be performed. As yet another example, an example of the update conditions may include the requirement to approve an update by one or more specified users within a predefined period of time. If approval is not received within the predefined time period, the update will be rejected.
[0055] The described features can be implemented in digital electronic circuits or in computer hardware, firmware, software or in combinations thereof. The apparatus can be implemented in a computer program product tangibly incorporated in an information vehicle (for example, in a machine-readable storage device) for realization by a programmable processor; and the steps of the method can be performed by a programmable processor executing an instruction program to execute functions of the described achievements operating on the input data and generating the output. The described features can be advantageously implemented in one or more computer programs that are executable in a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, on a computer to perform a certain activity or obtain a certain result. A computer program can be written in any form of
Petition 870190056795, of 06/19/2019, p. 29/44
22/23 programming, including compiled or interpreted languages, and can be implemented in any way, including as a standalone program or as a module, component, subroutine or other unit suitable for use in a computing environment.
[0056] Processors suitable for carrying out an instruction program include, for example, microprocessors for general and special use, and the single processor or one of multiple processors of any type of computer. Generally, a processor will receive instructions and data from either a read-only memory or a random access memory or both. The elements of a computer can include a processor to execute instructions and one or more memories to store instructions and data. Generally, a computer can also include, or is operationally coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard drives and removable disks; magneto-optical discs; and optical discs. Storage devices suitable for tangibly incorporating computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices, such as EPROM, EEPROM and flash memory devices; magnetic disks, such as internal hard drives and removable disks; magneto-optical discs; and CD-ROM and DVD-ROM discs. The processor and memory can be supplemented by, or incorporated into, application-specific integrated circuits (ASICs).
[0057] To provide interaction with a user, the features can be implemented on a computer with a display device, such as a cathode ray tube (CRT) or liquid crystal (LCD) monitor to display information to the user and a keyboard and a
Petition 870190056795, of 6/19/2019, p. 30/44
23/23 pointing device, such as a mouse or a trackball, through which the user can provide input to the computer.
[0058] The features can be implemented in a computer system that includes an administrative panel component (back-end), such as a data server, or that includes a middleware component, such as an application server or an Internet server , or that includes a front-end user interface component, such as a client computer with a graphical user interface or an Internet browser, or any combination of them. The system components can be connected by any form or means of digital data communication, such as a communication network. Examples of communication networks include, for example, a local area network (LAN), a wide area network (WAN) and the computers and networks that make up the Internet.
[0059] The computer system can include clients and servers. A client and a server are usually remote with each other and usually interact over a network, as described. The client and server relationship arises because of computer programs running on the respective computers and having a client-server relationship between them.
[0060] In addition, the logical flows represented in the figures do not require the particular order shown, or sequential order, to achieve the desired results. In addition, other steps can be provided, or steps can be eliminated, from the described flows, and other components can be added or removed from the described systems. Therefore, other achievements are within the scope of the following claims.
[0061] A number of embodiments of the present invention have been described. However, it will be understood that various modifications can be made without departing from the scope of the present invention. Therefore, other achievements are within the scope of the following claims.
权利要求:
Claims (30)
[1]
1. METHOD (400) IMPLEMENTED BY COMPUTER to manage updates (303) in smart contracts (304) executed in trust protocol networks, characterized by the fact that method (400) comprises the steps of:
receive (402), through a contract update management system (302), an update request indicating a change in a smart contract (304), the change being an update proposal (303) of the smart contract (304) );
determine (404) by executing updates (303) of the smart contract (304) within the contract update management system (302), whether the conditions are met to update the smart contract (304) to incorporate the change, the updates ( 303) of the smart contract (304) defining the conditions; and when determining (406), through the contract update management system (302), that the conditions are met, to update, through the contract update management system (302), the smart contract (304), and record the change of one or more blocks in a trust protocol of a trust protocol network (102, 212).
[2]
2. METHOD (400), according to claim 1, characterized by the fact that the update request (303) comprises an identifier assigned to the smart contract (304) within the trust protocol network (102, 212).
[3]
3. METHOD, according to claim 1, characterized by the fact that the update request comprises an identifier assigned to the updates (303) of the smart contract (304) within the trust protocol network (102, 212).
[4]
4. METHOD (400) according to claim 1,
Petition 870190056795, of 06/19/2019, p. 32/44
2/8 characterized by the fact that the smart contract (304) comprises:
a controlling contract (306) defined by a shipper upon receipt of a request from a contract originator that originates the smart contract (304);
a service contract (312) that includes the logic of the smart contract (304); and a data contract (314) which includes terms of the smart contract (304).
[5]
5. METHOD (400), according to claim 1, characterized by the fact that determining whether the conditions are met includes carrying out a voting process comprising:
send a request to one or more nodes (214) in the trust protocol network (102, 212) for a vote regarding the change;
collect votes from one or more nodes (214); and determine that the conditions are met when the votes cast indicate an approval of the change by one or more nodes (214).
[6]
6. METHOD (400), according to claim 5, characterized by the fact that the voting process includes weighting votes by weights associated with the respective nodes (214) and in which approval is based on a function of the votes collected and their associated weights.
[7]
7. METHOD (400), according to claim 5, characterized by the fact that the realization of the voting process includes the application of a veto received from a privileged veto node, in which the voting process ends when the veto is received for the change during the voting process, the veto causing the change to be rejected.
[8]
8. METHOD (400), according to claim 5, characterized by the fact that the voting process includes
Petition 870190056795, of 06/19/2019, p. 33/44
3/8 use voting rules specifying when the voting process should result in the approval of the change or rejection of the change.
[9]
9. METHOD (400), according to claim 5, characterized by the fact that the voting process includes the use of a start time for voting and an end time for voting that defines a voting period in which the voting process takes place.
[10]
10. METHOD (400), according to claim 5, characterized by the fact that the voting process ends and the conditions are met when a limit number of voters approved the change or when a combination of one or more specific voters approved the amendment.
[11]
11. LEGIBLE MEDIA BY COMPUTER, characterized by the fact that it is coupled to one or more processors and with instructions stored in it that, when executed by one or more processors, cause one or more processors to perform operations to manage updates (303) in smart contracts (304) executed on trust protocol networks, operations comprising:
receive, via a contract update management system (302), an update request indicating a change to a smart contract (304), the change being an update proposal (303) of the smart contract;
determine, by executing updates (303) of the smart contract (304) within the contract update management system (302), whether the conditions are met to update the smart contract to incorporate the change, the updates (303) of the smart contract ( 304) defining the conditions; and when determining, through the update management system (302) of the contract, that the conditions are met, update, through the
Petition 870190056795, of 06/19/2019, p. 34/44
4/8 update management (302) of the contract, the smart contract (304) and record the change in one or more blocks in a trust protocol from a trust protocol network (102, 212).
[12]
12. LEGIBLE MEANS BY COMPUTER, according to claim 11, characterized by the fact that the update request comprises an identifier assigned to the smart contract (304) within the trust protocol network (102, 212).
[13]
13. LEGIBLE MEDIA BY COMPUTER, according to claim 11, characterized by the fact that the update request comprises an identifier assigned to the smart contract updates (303) within the trust protocol network (102, 212) .
[14]
14. LEGIBLE MEDIA BY COMPUTER, according to claim 11, characterized by the fact that the smart contract (304) comprises:
a controller contract (306) defined by a shipper upon receipt of a request from a contract originator that originates the smart contract (304);
a service contract (312) that includes the logic of the smart contract (304); and a data contract (314) which includes terms of the smart contract (304).
[15]
15. LEGIBLE MEANS BY COMPUTER, according to claim 11, characterized by the fact that determining whether the conditions are met includes carrying out a voting process that comprises:
send a request to one or more nodes (214) in the trust protocol network (102, 212) for a vote regarding the change;
collect votes from one or more nodes (214); and determine that the conditions are met when the votes
Petition 870190056795, of 6/19/2019, p. 35/44
5/8 collected indicate an approval of the change by one or more nodes (214).
[16]
16. LEGIBLE MEANS BY COMPUTER, according to claim 15, characterized by the fact that the voting process includes weighting of votes by weights associated with the respective nodes (214), and in which approval is based on a function of the votes collected and their associated weights.
[17]
17. LEGIBLE MEANS BY COMPUTER, according to claim 15, characterized by the fact that the realization of the voting process includes the application of a veto received from a node with veto privilege, in which the voting process ends when a veto is received for the change during the voting process, the veto causing the change to be rejected.
[18]
18. LEGIBLE MEANS BY COMPUTER, according to claim 15, characterized by the fact that the voting process includes the use of voting rules that specify when the voting process is to result in the approval of the change or rejection of the change .
[19]
19. LEGIBLE MEANS BY COMPUTER, according to claim 15, characterized by the fact that the completion of the voting process includes the use of a start time for voting and an end time for voting that defines a voting period in which occurs the voting process.
[20]
20. LEGIBLE MEANS BY COMPUTER, according to claim 15, characterized by the fact that the voting process ends and the conditions are met when a limit number of voters has approved the change or when a combination of one or more voters has approved the change.
[21]
21. SYSTEM (106, 108), characterized by the fact that it comprises:
Petition 870190056795, of 6/19/2019, p. 36/44
6/8 a computing device (120); and a computer-readable storage device coupled to the computing device and having instructions stored on it that, when executed by the computing device (120), cause the computing device (120) to perform operations to manage updates to smart contracts (304 ) executed on trusted protocol networks, operations comprising:
receive (402), through an update management system (302) of the contract (304), an update request indicating a change in a smart contract (304), the change being an update proposal (303) of the contract intelligent (304);
determine (404) by executing smart contract updates (304) within the contract update management system (302), whether conditions are met to update the smart contract (304) to incorporate the change, smart contract updates ( 304) defining the conditions; and when determining (406), through the contract update management system (302), that the conditions are met, update, through the contract update management system (302), the smart contract (304) and record the change in one or more blocks in a trust protocol of a trust protocol network (102, 212).
[22]
22. SYSTEM (106, 108), according to claim 21, characterized by the fact that the update request comprises an identifier assigned to the smart contract (304) within the trust protocol network.
[23]
23. SYSTEM (106, 108), according to claim 21, characterized by the fact that the update request (303) comprises an identifier assigned to the smart contract updates (304) within
Petition 870190056795, of 6/19/2019, p. 37/44
7/8 of the trust protocol network (102, 212).
[24]
24. SYSTEM (106, 108), according to claim 21, characterized by the fact that the smart contract (304) comprises:
a controller contract (306) defined by a shipper upon receipt of a request from a contract originator that originates the smart contract (304);
a service contract (312) that includes the logic of the smart contract (304); and a data contract (314) which includes terms of the smart contract (304).
[25]
25. SYSTEM (106, 108), according to claim 21, characterized by the fact that determining whether the conditions are met includes carrying out a voting process comprising:
send a request to one or more nodes (214) in the trust protocol network (102, 212) for a vote regarding the change;
collect votes from one or more nodes (214); and determine that the conditions are met when the votes cast indicate an approval of the change by one or more nodes (214).
[26]
26. SYSTEM (106, 108), according to claim 25, characterized by the fact that carrying out the voting process includes weighing votes by weights associated with the respective nodes (214), and in which approval is based on a function of the votes collected and their associated weights.
[27]
27. SYSTEM (106, 108), according to claim 25, characterized by the fact that the realization of the voting process includes applying a veto received from a node with veto privilege, in which the voting process ends when it is received a veto for the change during the voting process, the veto causing the change to be rejected.
[28]
28. SYSTEM (106, 108) according to claim 25,
Petition 870190056795, of 6/19/2019, p. 38/44
8/8 characterized by the fact that carrying out the voting process includes using voting rules specifying when the voting process should result in the approval of the change or rejection of the change.
[29]
29. SYSTEM (106, 108), according to claim 25, characterized by the fact that the voting process includes the use of a start time for voting and an end time for voting that defines a voting period in that the voting process takes place.
[30]
30. SYSTEM (106, 108), according to claim 25, characterized by the fact that the voting process ends and the conditions are met when a limit number of voters approved the change or when a combination of one or more specific voters approved the amendment.
类似技术:
公开号 | 公开日 | 专利标题
BR112019008008A2|2019-11-12|computer implemented method, computer readable medium and system
US20200118131A1|2020-04-16|Database transaction compliance
US20200074458A1|2020-03-05|Privacy preserving transaction system
WO2020134699A1|2020-07-02|Blockchain-based invoice reimbursement method and device and electronic device
US11030188B2|2021-06-08|Platform for atomic transfer of smart assets within blockchain networks
CN112020705A|2020-12-01|Block chain random timer transaction synchronization
WO2020220760A1|2020-11-05|Blockchain-based payment withholding method and apparatus, electronic device and storage medium
US20210144196A1|2021-05-13|Methods, devices and systems for a distributed coordination engine-based exchange that implements a blockchain distributed ledger
TW202034250A|2020-09-16|Methods and devices for processing certificates in blockchain system
US11037143B2|2021-06-15|Platform for atomic transfer of smart assets within blockchain networks
US20200145214A1|2020-05-07|Verification of telemetry data
US20200242593A1|2020-07-30|Value optimizing data store
US10931438B2|2021-02-23|Generating a representative article
US20190384927A1|2019-12-19|Services platform for managing a verifiable permissioned ledger in a distributed database management system
BR112019007939A2|2019-11-12|computer-implemented method, computer-readable medium, and system for implementing a method
同族专利:
公开号 | 公开日
US10594477B2|2020-03-17|
JP6798087B2|2020-12-09|
KR20200067116A|2020-06-11|
AU2018348329A1|2020-06-18|
WO2019072289A2|2019-04-18|
EP3552366A2|2019-10-16|
RU2721100C1|2020-05-15|
CN110168582A|2019-08-23|
SG11201903533QA|2019-05-30|
AU2018348329B2|2020-11-05|
JP2020501402A|2020-01-16|
US20190253239A1|2019-08-15|
TW202023233A|2020-06-16|
EP3552366A4|2019-11-06|
MX2019004666A|2019-08-21|
CA3041188C|2021-01-12|
WO2019072289A3|2019-10-03|
PH12019500868A1|2019-11-25|
CA3041188A1|2019-04-18|
TWI695615B|2020-06-01|
KR102151893B1|2020-09-03|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

KR100864987B1|2007-04-12|2008-10-22|디비코 주식회사|Client synchronization system and method for the same|
US8090351B2|2009-09-01|2012-01-03|Elliot Klein|Geographical location authentication method|
US20130007849A1|2011-05-26|2013-01-03|FonWallet Transaction Soulutions, Inc.|Secure consumer authorization and automated consumer services using an intermediary service|
US10635471B2|2015-05-15|2020-04-28|Joshua Paul Davis|System and method for an autonomous entity|
CN112686653A|2016-02-23|2021-04-20|区块链控股有限公司|Registration and automatic management method of intelligent contracts executed by block chains|
US10346406B2|2016-03-28|2019-07-09|International Business Machines Corporation|Decentralized autonomous edge compute coordinated by smart contract on a blockchain|
US10445698B2|2016-06-30|2019-10-15|Clause, Inc.|System and method for forming, storing, managing, and executing contracts|
US20180096360A1|2016-10-04|2018-04-05|International Business Machines Corporation|Method and apparatus to enforce smart contract execution hierarchy on blockchain|
US20180114205A1|2016-10-21|2018-04-26|Bank Of America Corporation|Distributed ledger system for providing aggregate tracking and threshold triggering|
US10719771B2|2016-11-09|2020-07-21|Cognitive Scale, Inc.|Method for cognitive information processing using a cognitive blockchain architecture|
US10318979B2|2016-12-26|2019-06-11|International Business Machines Corporation|Incentive-based crowdvoting using a blockchain|
CN110300984A|2017-02-17|2019-10-01|诺基亚技术有限公司|Change the intelligent contract recorded in block chain|
US10541886B2|2017-05-24|2020-01-21|International Business Machines Corporation|Decentralized change management based on peer devices using a blockchain|
CN108833398B|2018-06-08|2020-12-15|深圳智链未来科技有限公司|Block chain intelligent contract updating method, device and equipment|US10944745B2|2018-12-06|2021-03-09|Bank Of America Corporation|System and method for device and transaction authentication|
US10986079B2|2018-12-06|2021-04-20|Bank Of America Corporation|System and method for hierarchical decisioning within a hybrid blockchain|
US11257079B2|2019-04-30|2022-02-22|Banco Bilbao Vizcaya Argentaria, S.A.|Systems, methods, and interfaces for smart contract based exchanges via a blockchain|
CN110288179A|2019-05-10|2019-09-27|深圳壹账通智能科技有限公司|Administering method and device, computer equipment, the storage medium of alliance's chain|
US10915578B1|2019-09-06|2021-02-09|Digital Asset Capital, Inc.|Graph outcome determination in domain-specific execution environment|
US11132403B2|2019-09-06|2021-09-28|Digital Asset Capital, Inc.|Graph-manipulation based domain-specific execution environment|
CN112468605A|2019-09-06|2021-03-09|傲为信息技术有限公司|Decentralized domain name updating system and method based on block chain|
CN111833510B|2019-12-25|2021-12-14|北京熠智科技有限公司|Voting processing method and device based on block chain, equipment and storage medium|
CN111291365A|2020-02-28|2020-06-16|上海哈世科技有限公司|Intelligent contract management method, device, equipment and storage medium for alliance chain system|
CN111639127A|2020-05-11|2020-09-08|支付宝实验室有限公司|Method, system, device and equipment for updating intelligent contract|
RU2751457C1|2020-06-16|2021-07-14|Публичное Акционерное Общество "Сбербанк России"|Method and system for electronic voting in a distributed registry|
CN113037817A|2020-08-31|2021-06-25|支付宝信息技术有限公司|Method and device for starting intelligent contract, electronic equipment and storage medium|
CN113300855A|2021-05-25|2021-08-24|浙江大学|Variable strategy-based alliance chain voting management method and system|
法律状态:
2021-04-06| B25A| Requested transfer of rights approved|Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY) |
2021-04-27| B25A| Requested transfer of rights approved|Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY) |
2021-09-21| B07A| Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]|
2021-10-13| B350| Update of information on the portal [chapter 15.35 patent gazette]|
2022-02-15| B09B| Patent application refused [chapter 9.2 patent gazette]|
优先权:
申请号 | 申请日 | 专利标题
PCT/CN2018/118543|WO2019072289A2|2018-11-30|2018-11-30|Blockchain smart contract updates using decentralized decision|
[返回顶部]